/*
 * EN ESTA CLASE VALIDO A LOS USUARIOS 
 * SI SON CORRECTOS INGRESAN AL SISTEMA DE LO CONTRARIO SE MUESTRA EL MENSAJE DE ERROR
 * and open the template in the editor.
 */

package dao;

import model.Usuario;
import org.hibernate.Session;
import util.HibernateUtil;

/**
 *
 * @author Manuel
 */
public class UsuarioDaoImpl implements UsuarioDao {

    /* este metodo implementa la logica para recuperar un usuario que viene de la vista */
    @Override
    public Usuario findByUsuario(Usuario usuario) {
        Usuario model = null;
        Session sesion= HibernateUtil.getSessionFactory().getCurrentSession();
        /*es necesario hacer esta consulta cuyo tipo es HQL */
        String sql="FROM Usuario WHERE usuario = '"+usuario.getUsuario()+"'"; 
        try {
                sesion.beginTransaction();
                model=(Usuario) sesion.createQuery(sql).uniqueResult();
                sesion.beginTransaction().commit();
            } catch (Exception e){
                sesion.beginTransaction().rollback();
            }
            return model;
    }

    /*este metodo implementa la logica para validar un usuario */
    @Override
    public Usuario login(Usuario usuario) {
         /* aqui recupero directo el usuario, el que obtengo de la vista */
        /* como el usuario es unico por eso compara con el usuario */
        Usuario model=this.findByUsuario(usuario);
       /* aqui valido si la contrasena sea la misma ingresada */
        if (model != null)
        {
            if (!usuario.getClave().equals(model.getClave())){
                model = null;
            }
        }
        return model;
    }
    
}
